home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / graphics / visualengineer / arexx / visualsurface.rexx next >
OS/2 REXX Batch file  |  1999-05-14  |  6KB  |  282 lines

  1. /*
  2.  
  3.    v1.24 Visual Surface
  4.  
  5.    Marko Seppänen
  6.    marko.seppanen@wwnet.fi
  7.  
  8. */
  9.  
  10.  
  11. address IMAGEENGINEER
  12.  
  13. Options results
  14. signal on error            /* Setup a place for errors to go */
  15.  
  16. if arg()=0 then exit
  17. x=arg(1)
  18. pic=subword(x,1,1)
  19. surfacetype=subword(x,2,1)
  20. checkbit=subword(x,3,1)
  21. space=0
  22.  
  23.  
  24. MARK pic PRIMARY
  25. PROJECT_INFO pic WIDTH
  26. picwidth=result
  27. PROJECT_INFO pic HEIGHT
  28. picheight=result
  29. PROJECT_INFO pic ZOOM
  30. origzoomvalue=result
  31.  
  32.  
  33. if surfacetype="" then do
  34.  
  35.   if exists("ie:prefs/visualsurface.cfg") == "1" then
  36.     do
  37.       call open("temp","ie:prefs/visualsurface.cfg","R")
  38.       values=readln("temp")
  39.       parse var values ok surfacetype .
  40.       call close("temp")
  41.     end
  42.   else
  43.     do
  44.       surfacetype=0
  45.     end
  46.  
  47.   ' FORM "Visual Surface" "Use|Cancel"',
  48.   ' CYCLE,"Surfacetype","Noise|Maximum",'surfacetype''
  49.  
  50.   values=result
  51.   parse var values ok surfacetype .
  52.  
  53.   if ok = 0 then exit
  54.  
  55.   call open("temp","ie:prefs/visualsurface.cfg","W")
  56.   res=writeln("temp",values)
  57.   call close("temp")
  58.  
  59. end
  60.  
  61.  
  62. select
  63.  
  64.   when surfacetype == 0 then
  65.  
  66.     do
  67.  
  68.       if exists("ie:prefs/visualsurfacenoise.cfg") == "1" then
  69.         do
  70.           call open("temp","ie:prefs/visualsurfacenoise.cfg","R")
  71.           values=readln("temp")
  72.           parse var values ok noisevalue noisecolor aftereffect .
  73.           call close("temp")
  74.         end
  75.       else
  76.         do
  77.           noisevalue=15
  78.           noisecolor=0
  79.           aftereffect=0
  80.         end
  81.  
  82.       'FORM "Visual Surface - noise" "Use|Cancel"',
  83.       'INTEGER,"Noisevalue",1,100,'noisevalue',SLIDER',
  84.       'CYCLE,"Noisecolor","White|Black",'noisecolor'',
  85.       'CYCLE,"Aftereffect","Carbonated|Concrete|Leather|Crunchy|Dirty|Blotchy|Scribble|Noise|Bump|Stardust|Brushed metal|Dots|Rock",'aftereffect''
  86.  
  87.  
  88.       values=result
  89.       parse var values ok noisevalue noisecolor aftereffect .
  90.  
  91.       if ok = 0 then exit
  92.  
  93.       call open("temp","ie:prefs/visualsurfacenoise.cfg","W")
  94.       res=writeln("temp",values)
  95.       call close("temp")
  96.  
  97.  
  98.  
  99.       BRIGHTNESS pic "-255"
  100.       black=result
  101.  
  102.       NOISE black 100 INTENSITY ADDITIVE noisevalue GAUSSIAN
  103.       noisebox=result
  104.  
  105.       CLOSE black
  106.  
  107.  
  108.  
  109.       if aftereffect=="0" then convolvetype="DeepPress"
  110.       if aftereffect=="1" then convolvetype="Emboss_High"
  111.       if aftereffect=="2" then convolvetype="Emboss_High_0"
  112.       if aftereffect=="3" then convolvetype="Emboss_Ultra"
  113.       if aftereffect=="4" then convolvetype="FeatherWhite"
  114.       if aftereffect=="5" then convolvetype="GaussianBlur5x5"
  115.       if aftereffect=="6" then convolvetype="Reflect_NorthWest"
  116.       if aftereffect=="7" then convolvetype="RoughSurface_Low"
  117.       if aftereffect=="8" then convolvetype="Sobel"
  118.       if aftereffect=="9" then convolvetype="Spark"
  119.       if aftereffect=="10" then convolvetype="Wet_WhiteOnBlack"
  120.       if aftereffect=="11" then convolvetype="Bump_NorthWest"
  121.       if aftereffect=="12" then convolvetype="Carve_NorthWest"
  122.  
  123.  
  124.       if exists("ie:convolves/"convolvetype) == "0" then do
  125.         'REQUEST "Please download VE-!Extras.lha" "Ok"'
  126.         exit
  127.       end
  128.  
  129.       CONVOLVE noisebox "IE:Convolves/"convolvetype
  130.       noisebox2=result
  131.       CLOSE noisebox
  132.       noisebox=noisebox2
  133.  
  134.  
  135.       MARK pic PRIMARY
  136.       MARK noisebox SECONDARY
  137.  
  138.       if noisecolor=="0" then method="ADD"
  139.       else do
  140.  
  141.         NEGATIVE noisebox
  142.         whitenoise=result
  143.  
  144.         CLOSE noisebox
  145.         noisebox=whitenoise
  146.  
  147.         MARK whitenoise SECONDARY
  148.         method="MULTIPLY"
  149.  
  150.       end
  151.  
  152.  
  153.       COMPOSITE 0 0 method
  154.       final=result
  155.  
  156.       CLOSE noisebox
  157.  
  158.     end
  159.  
  160.  
  161.  
  162.   when surfacetype == 1 then
  163.  
  164.     do
  165.  
  166.       if exists("ie:prefs/visualsurfacemaximum.cfg") == "1" then
  167.         do
  168.           call open("temp","ie:prefs/visualsurfacemaximum.cfg","R")
  169.           values=readln("temp")
  170.           parse var values ok maxvalue aftereffect .
  171.           call close("temp")
  172.         end
  173.       else
  174.         do
  175.           maxvalue=7
  176.           aftereffect=0
  177.         end
  178.  
  179.       'FORM "Visual Surface - maximum" "Use|Cancel"',
  180.       'INTEGER,"Noisevalue",1,25,'maxvalue',SLIDER',
  181.       'CYCLE,"Aftereffect","Tekno|Sunshine|Watercolor|Bump|Raised|Psycho|Woodcut",'aftereffect''
  182.  
  183.  
  184.       values=result
  185.       parse var values ok maxvalue aftereffect .
  186.  
  187.       if ok = 0 then exit
  188.  
  189.       call open("temp","ie:prefs/visualsurfacemaximum.cfg","W")
  190.       res=writeln("temp",values)
  191.       call close("temp")
  192.  
  193.  
  194.  
  195.       MAXIMUM pic maxvalue maxvalue
  196.       noisebox=result
  197.  
  198.  
  199.  
  200.       if aftereffect=="0" then convolvetype="ColourFragment_Colour"
  201.       if aftereffect=="1" then convolvetype="FeatherWhite"
  202.       if aftereffect=="2" then convolvetype="GaussianBlur5x5"
  203.       if aftereffect=="3" then convolvetype="Reflect_NorthWest"
  204.       if aftereffect=="4" then convolvetype="RoughSurface_Medium"
  205.       if aftereffect=="5" then convolvetype="SmoothEdge_Normal"
  206.       if aftereffect=="6" then convolvetype="Woodcut"
  207.  
  208.  
  209.       if exists("ie:convolves/"convolvetype) == "0" then do
  210.         'REQUEST "Please download VE-!Extras.lha" "Ok"'
  211.         exit
  212.       end
  213.  
  214.  
  215.       CONVOLVE noisebox "IE:Convolves/"convolvetype
  216.       noisebox2=result
  217.       CLOSE noisebox
  218.       noisebox=noisebox2
  219.  
  220.  
  221.       MARK pic PRIMARY
  222.       MARK noisebox SECONDARY
  223.  
  224.       COMPOSITE 0 0 ADD
  225.       final=result
  226.  
  227.       CLOSE noisebox
  228.  
  229.     end
  230.  
  231.  
  232. otherwise exit
  233.  
  234. end
  235.  
  236.  
  237.  
  238.  
  239.  
  240. exit
  241.  
  242.  
  243.  
  244.  
  245.  
  246. addspace:
  247.  
  248.   temppic=arg(1)
  249.   space=arg(2)
  250.   bg=arg(3)
  251.  
  252.   if exists("ie:arexx/addspace.rexx") == "0" then do
  253.     'REQUEST "AddSpace.rexx is missing!" "I will get it... sorry"'
  254.     exit
  255.   end
  256.   address command "rexx:rx ie:arexx/AddSpace.rexx" temppic space bg
  257.  
  258.   PROJECT_LIST
  259.   xyz=result
  260.   x0=subword(xyz,1,1)
  261.  
  262.   return x0
  263.  
  264.  
  265. /*******************************************************************/
  266. /* This is where control goes when an error code is returned by IE */
  267. /* It puts up a message saying what happened and on which line     */
  268. /*******************************************************************/
  269. error:
  270. if RC=5 then do            /* Did the user just cancel us? */
  271.     IE_TO_FRONT
  272.     LAST_ERROR
  273.     'REQUEST "'||RESULT||'"'
  274.     exit
  275. end
  276. else do
  277.     IE_TO_FRONT
  278.     LAST_ERROR
  279.     'REQUEST "Error detected!!!'||D2C(10)||'Image Engineer error message is as follows'||D2C(10)||result||D2C(10)||'Script failed on line '||SIGL||'"' 'Doh!'
  280.     exit
  281. end
  282.